home *** CD-ROM | disk | FTP | other *** search
/ Collection of Internet / Collection of Internet.iso / infosrvr / dev / www_talk.930 / 000200_connolly@pixel.convex.com _Fri Aug 7 07:58:01 1992.msg < prev    next >
Internet Message Format  |  1994-01-24  |  3KB

  1. Return-Path: <connolly@pixel.convex.com>
  2. Received: from dxmint.cern.ch by  nxoc01.cern.ch  (NeXT-1.0 (From Sendmail 5.52)/NeXT-2.0)
  3.     id AA28095; Fri, 7 Aug 92 07:58:01 MET DST
  4. Received: by dxmint.cern.ch (dxcern) (5.57/3.14)
  5.     id AA26524; Fri, 7 Aug 92 07:58:26 +0200
  6. Received: from pixel.convex.com by convex.convex.com (5.64/1.35)
  7.     id AA12409; Fri, 7 Aug 92 00:57:25 -0500
  8. Received: from localhost by pixel.convex.com (5.64/1.28)
  9.     id AA10806; Fri, 7 Aug 92 00:57:16 -0500
  10. Message-Id: <9208070557.AA10806@pixel.convex.com>
  11. To: www-talk@nxoc01.cern.ch
  12. Subject: more on FrameMaker support
  13. Date: Fri, 07 Aug 92 00:57:16 CDT
  14. From: Dan Connolly <connolly@pixel.convex.com>
  15.  
  16. I've just cooked up a MIF->HTML filter (for frame docs created from
  17. HTML files in the first place). It's written in XLISP, which is a
  18. widely available lisp interpreter with OOP extensions (the thing builds
  19. on PCs, Macs, and Unix boxes).
  20.  
  21. This completes the circle:
  22.     # HTML to MML
  23.     sgmls foo.html | xlisp html2mml.l >foo.mml
  24.     # now you can load foo.mml into frame
  25.     # Then you can save it as mif. Or, you
  26.     # can just do
  27.     mmltomif <foo.mml >foo.mif
  28.     # Then you can convert it back to html:
  29.     xlisp mif2html.l <foo.mif >foo.html
  30.  
  31. Note that this does not address the issue of converting "legacy
  32. documents" currently in Frame to HTML. The Frame documents
  33. have to use the right paragraph tags so that I can recognize
  34. the SGML structure of the file.
  35.  
  36. But it has some interesting possibilities:
  37.  
  38. * Frame can be configured to convert files based on
  39. their extension. So you can edit some frame config
  40. file so that when you open foo.html, it invokes
  41. the html2mml and mmltomif filters, and voila! you
  42. can load WWW files into FrameMaker.
  43.  
  44. I think you can do the same thing for saving. So
  45. you could use FrameMaker much like the NeXT browser.
  46.  
  47. * Frame has hypertext which is extensible through
  48. RPC calls. I translated the HTML sequence
  49.     <A HREF="scheme:addr">text</a>
  50. to
  51.     <italic>
  52.     <Marker <MType 8> <MText "message www scheme:addr">>
  53.     text
  54.     <noitalic>
  55. in MML. Marker type 8 is hypertext. So when you click on
  56. "text", the MText is invoked. "message www" means make
  57. an RPC call to www with "scheme:addr" as the argument.
  58.  
  59. So we could write a www RPC client that fetches WWW nodes
  60. and hands them to Frame.
  61.  
  62. I'm not going to distribute the code right now,
  63. because 1) it's not very polished, and 2) the www-talk
  64. audience didn't respond to my html->mml filter with
  65. much enthusiasm (I assume that's because it required
  66. you to build XLISP (easy) and SGMLs (bigger, but still
  67. easy)).
  68.  
  69. There are a few things that I didn't bother to code yet:
  70.  
  71. * mapping Frame's funkey apostrophies and quotes
  72. to plain ASCII. (in general, we want to convert
  73. Frame's funky "Diacritic Encoding" to whatever character
  74. set HTML uses (ISO latin-1?))
  75.  
  76. * mapping <A NAME="2"> to <MText "newlink 2"> and back.
  77.  
  78. * mapping <A HREF="#2"> to <MText "gotolink 2"> and back.
  79.  
  80. * mapping <A HREF="file:foo#bar"> to <MText "gotolink foo:bar"> and back.
  81.  
  82. Good night.
  83.  
  84. Dan
  85.  
  86. p.s. I discovered that the DTD in the WWW browser code
  87. considers <LI>, <DT>, and <DD> to be empty elements.
  88. I changed my copy of html.dtd accordingly. The one
  89. in the web will need to be changed.
  90.  
  91. This causes the UL, OL, DL, etc. items to have mixed
  92. content, which gives newlines all sorts of tricky
  93. twists.
  94.  
  95. Mixed content is something to be avoided in SGML DTD's,
  96. for reasons that are far too ugly to explain right now.